package cn.deng.config;


import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * @author: DengJingWen deng
 * @description:
 * @create: 2025-05-05
 */

@Data
@ConfigurationProperties(prefix = "thread.pool.executor.config", ignoreInvalidFields = true)
public class ThreadPoolConfigProperties {

    /** 线程池核心线程数 */
    private Integer corePoolSize = 20;

    /** 线程池最大线程数 */
    private Integer maxPoolSize = 200;

    /** 最大等待时间 */
    private Long keepAliveTime = 10L;

    /** 最大队列数 */
    private Integer blockQueueSize = 5000;

    /*
     * AbortPolicy: 丢弃任务并抛出RejectedExecutionException异常。
     * DiscardingPolicy: 直接丢弃任务，但是不抛出异常。
     * DiscardingOldestPolicy: 丢弃队列中最老/最早的任务，之后再尝试加入队列的任务被拒绝
     * CallerRunsPolicy: 如果任务添加到线程池中被拒绝，则直接在主线程中自己运行该任务。
     */
    private String policy = "AbortPolicy";

}
